* to the toolbar, add an instance of #GtkToolButton.
*
* Toolbar items can be visually grouped by adding instances of
- * #GtkSeparatorToolItem to the toolbar. If the GtkToolbar child property
+ * #GtkSeparatorToolItem to the toolbar. If the GtkToolItem property
* “expand” is #TRUE and the property #GtkSeparatorToolItem:draw is set to
* #FALSE, the effect is to force all following items to the end of the toolbar.
*
PROP_TOOLTIPS,
};
-/* Child properties */
-enum {
- CHILD_PROP_0,
- CHILD_PROP_EXPAND,
- CHILD_PROP_HOMOGENEOUS
-};
-
/* Signals */
enum {
ORIENTATION_CHANGED,
GtkDirectionType dir);
static void gtk_toolbar_display_changed (GtkWidget *widget,
GdkDisplay *previous_display);
-static void gtk_toolbar_set_child_property (GtkContainer *container,
- GtkWidget *child,
- guint property_id,
- const GValue *value,
- GParamSpec *pspec);
-static void gtk_toolbar_get_child_property (GtkContainer *container,
- GtkWidget *child,
- guint property_id,
- GValue *value,
- GParamSpec *pspec);
static void gtk_toolbar_finalize (GObject *object);
static void gtk_toolbar_dispose (GObject *object);
static void gtk_toolbar_add (GtkContainer *container,
container_class->remove = gtk_toolbar_remove;
container_class->forall = gtk_toolbar_forall;
container_class->child_type = gtk_toolbar_child_type;
- container_class->get_child_property = gtk_toolbar_get_child_property;
- container_class->set_child_property = gtk_toolbar_set_child_property;
klass->orientation_changed = gtk_toolbar_orientation_changed;
klass->style_changed = gtk_toolbar_real_style_changed;
TRUE,
GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
- /* child properties */
- gtk_container_class_install_child_property (container_class,
- CHILD_PROP_EXPAND,
- g_param_spec_boolean ("expand",
- P_("Expand"),
- P_("Whether the item should receive extra space when the toolbar grows"),
- FALSE,
- GTK_PARAM_READWRITE));
-
- gtk_container_class_install_child_property (container_class,
- CHILD_PROP_HOMOGENEOUS,
- g_param_spec_boolean ("homogeneous",
- P_("Homogeneous"),
- P_("Whether the item should be the same size as other homogeneous items"),
- FALSE,
- GTK_PARAM_READWRITE));
-
binding_set = gtk_binding_set_by_class (klass);
add_arrow_bindings (binding_set, GDK_KEY_Left, GTK_DIR_LEFT);
gtk_toolbar_begin_sliding (toolbar);
}
-static void
-gtk_toolbar_get_child_property (GtkContainer *container,
- GtkWidget *child,
- guint property_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GtkToolItem *item = GTK_TOOL_ITEM (child);
-
- switch (property_id)
- {
- case CHILD_PROP_HOMOGENEOUS:
- g_value_set_boolean (value, gtk_tool_item_get_homogeneous (item));
- break;
-
- case CHILD_PROP_EXPAND:
- g_value_set_boolean (value, gtk_tool_item_get_expand (item));
- break;
-
- default:
- GTK_CONTAINER_WARN_INVALID_CHILD_PROPERTY_ID (container, property_id, pspec);
- break;
- }
-}
-
-static void
-gtk_toolbar_set_child_property (GtkContainer *container,
- GtkWidget *child,
- guint property_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- switch (property_id)
- {
- case CHILD_PROP_HOMOGENEOUS:
- gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM (child), g_value_get_boolean (value));
- break;
-
- case CHILD_PROP_EXPAND:
- gtk_tool_item_set_expand (GTK_TOOL_ITEM (child), g_value_get_boolean (value));
- break;
-
- default:
- GTK_CONTAINER_WARN_INVALID_CHILD_PROPERTY_ID (container, property_id, pspec);
- break;
- }
-}
-
static void
gtk_toolbar_add (GtkContainer *container,
GtkWidget *widget)
PROP_VISIBLE_HORIZONTAL,
PROP_VISIBLE_VERTICAL,
PROP_IS_IMPORTANT,
+ PROP_HOMOGENEOUS,
+ PROP_EXPAND_ITEM,
};
FALSE,
GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
+ g_object_class_install_property (object_class,
+ PROP_EXPAND_ITEM,
+ g_param_spec_boolean ("expand-item",
+ P_("Expand Item"),
+ P_("Whether the item should receive extra space when the toolbar grows"),
+ FALSE,
+ GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
+
+ g_object_class_install_property (object_class,
+ PROP_HOMOGENEOUS,
+ g_param_spec_boolean ("homogeneous",
+ P_("Homogeneous"),
+ P_("Whether the item should be the same size as other homogeneous items"),
+ FALSE,
+ GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
+
/**
* GtkToolItem::create-menu-proxy:
* @tool_item: the object the signal was emitted on
case PROP_IS_IMPORTANT:
gtk_tool_item_set_is_important (toolitem, g_value_get_boolean (value));
break;
+ case PROP_EXPAND_ITEM:
+ gtk_tool_item_set_expand (toolitem, g_value_get_boolean (value));
+ break;
+ case PROP_HOMOGENEOUS:
+ gtk_tool_item_set_homogeneous (toolitem, g_value_get_boolean (value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
case PROP_IS_IMPORTANT:
g_value_set_boolean (value, toolitem->priv->is_important);
break;
+ case PROP_EXPAND_ITEM:
+ g_value_set_boolean (value, toolitem->priv->expand);
+ break;
+ case PROP_HOMOGENEOUS:
+ g_value_set_boolean (value, toolitem->priv->homogeneous);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
if (tool_item->priv->expand != expand)
{
tool_item->priv->expand = expand;
- gtk_widget_child_notify (GTK_WIDGET (tool_item), "expand");
+ g_object_notify (G_OBJECT (tool_item), "expand-item");
gtk_widget_queue_resize (GTK_WIDGET (tool_item));
}
}
if (tool_item->priv->homogeneous != homogeneous)
{
tool_item->priv->homogeneous = homogeneous;
- gtk_widget_child_notify (GTK_WIDGET (tool_item), "homogeneous");
+ g_object_notify (G_OBJECT (tool_item), "homogeneous");
gtk_widget_queue_resize (GTK_WIDGET (tool_item));
}
}